The modern communications era has brought about a tremendous expansion of wireline and wireless networks. Computer networks, television networks, and telephony networks are experiencing an unprecedented technological expansion, fueled by consumer demand. Wireless and mobile networking technologies have addressed related consumer demands, while providing more flexibility and immediacy of information transfer.
Current and future networking technologies continue to facilitate ease of information transfer and convenience to users. One area in which there is a demand to increase ease of information transfer and convenience to users relates to provision of various applications or software to users of electronic devices such as a mobile terminal. The applications or software may be executed from a local computer, a network server or other network device, or from the mobile terminal such as, for example, a mobile telephone, a mobile television, a mobile gaming system, video recorders, cameras, etc, or even from a combination of the mobile terminal and the network device. In this regard, various applications and software have been developed and continue to be developed in order to give the users robust capabilities to perform tasks, communicate, entertain themselves, gather and/or analyze information, etc. in either fixed or mobile environments.
An example of an application that may be used to gather and/or analyze information is a barcode reader. While barcodes have been in use for about half a century, developments related to utilization of barcodes have recently taken drastic leaps with the infusion of new technologies. For example, new technology has enabled the development of barcodes that are able to store product information of increasing detail. Barcodes have been employed to provide links to related sites such as web pages. Additionally, barcode systems have been developed which move beyond typical one dimensional (1D) barcodes to provide multiple types of potentially complex two dimensional (2D) barcodes. Along with changes related to barcode usage and types, new devices have been developed for reading barcodes. In the past, barcode readers were often devices which irradiate light onto a barcode and receive reflected light from stripe patterns composed of black and white lines in order to detect the barcode. However, cameras and laser scanners have also been developed which are capable of performing barcode reading operations. Given the ubiquitous nature of cameras in mobile terminal devices, it may be increasingly advantageous to provide barcode reading capabilities that could be employed on such mobile terminal devices.
Unfortunately, camera images are often more difficult to accurately recognize than scanner images. This phenomenon may be related to a number of factors. First, uneven lighting or aberrations on a camera lens may lead to non-uniform brightness or uneven lighting, which may render a camera image less accurate. Second, the color level surface of a camera image is smoother than that of a scanner image. In other words, edges of objects within a camera image are not as clear as edges of objects within a scanner image. Therefore, the difference in intensity between portions of a camera image may be obscure. Third, camera images may be distorted by sensor noise such as optical blur and vignetting, which also reduce image quality. Because of the problems described above, barcode reading using camera images faces additional challenges over scanned images. Applications have been developed which incorporate complex methods aimed at overcoming some of the problems above. However, each application is typically rigid in its approach to addressing the problems above. Therefore, current applications are often limited in flexibility and may be relevant only to particular barcode types, or particular conditions.
Accordingly, it may be desirable to introduce an application for use with camera image based barcode reading, which is capable of overcoming the disadvantages described above. Furthermore, it may be desirable to introduce an application which overcomes the disadvantages above in a flexible manner which enables utilization of the application under a variety of conditions and for different types of barcodes.